home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX Base Documentation 1998 November
/
IRIX 6.5.2 Base Documentation November 1998.img
/
usr
/
share
/
catman
/
p_man
/
cat3
/
sigqueue.z
/
sigqueue
Wrap
Text File
|
1998-10-20
|
5KB
|
133 lines
SSSSIIIIGGGGQQQQUUUUEEEEUUUUEEEE((((3333)))) SSSSIIIIGGGGQQQQUUUUEEEEUUUUEEEE((((3333))))
NNNNAAAAMMMMEEEE
sigqueue - queue a signal to a process (POSIX)
CCCC SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
####iiiinnnncccclllluuuuddddeeee <<<<ssssiiiiggggnnnnaaaallll....hhhh>>>>
iiiinnnntttt ssssiiiiggggqqqquuuueeeeuuuueeee((((ppppiiiidddd____tttt ppppiiiidddd,,,, iiiinnnntttt ssssiiiiggggnnnnoooo,,,, ccccoooonnnnsssstttt uuuunnnniiiioooonnnn ssssiiiiggggvvvvaaaallll vvvvaaaalllluuuueeee))));;;;
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
The function _s_i_g_q_u_e_u_e() causes the signal specified by _s_i_g_n_o to be sent
with the value specified by _v_a_l_u_e to the process specified by _p_i_d. If
_s_i_g_n_o is zero (the null signal), error checking is performed, but no
signal is actually sent. The null signal can be used to check the
validity of _p_i_d.
The conditions required for a process to have permission to queue a
signal to another process are the same as for the _k_i_l_l(2) function.
If the signal specified in _s_i_g_n_o is currently blocked for the receiving
process, _s_i_g_q_u_e_u_e() shall return immediately and, if SA_SIGINFO is set
for _s_i_g_n_o and if the resources were available to queue the signal, the
signal shall be left queued and pending. Furthermore, when the signal
handler for _s_i_g_n_o is delivered, the field _s_i__c_o_d_e of the passed in
_s_i_g_i_n_f_o structure will be set to SI_QUEUE (see _ssss_iiii_gggg_aaaa_cccc_tttt_iiii_oooo_nnnn(2), _ssss_iiii_gggg_nnnn_aaaa_llll(5)).
If SA_SIGINFO is not set for _s_i_g_n_o, then _s_i_g_n_o, but not necessarily
_v_a_l_u_e, shall be sent at least once to the receiving process.
If the value of _p_i_d causes _s_i_g_n_o to be generated for the sending process,
and if _s_i_g_n_o is not blocked for the calling thread and if no other thread
has _s_i_g_n_o unblocked or is waiting in a _s_i_g_w_a_i_t function for _s_i_g_n_o, at
least one pending unblocked signal shall be delivered to the calling
thread before the _s_i_g_q_u_e_u_e() function returns.
SSSSEEEEEEEE AAAALLLLSSSSOOOO
_kkkk_iiii_llll_llll(2), _ssss_iiii_gggg_aaaa_cccc_tttt_iiii_oooo_nnnn(2), _ssss_iiii_gggg_wwww_aaaa_iiii_tttt(3), _ssss_iiii_gggg_nnnn_aaaa_llll(5).
DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
Upon successful completion, the _s_i_g_q_u_e_u_e() function returns a value of 0
indicating that the specified signal has been queued. Otherwise a value
of -1 is returned and _e_r_r_n_o is set to indicate the error. If any of the
conditions below occur, the _s_i_g_q_u_e_u_e() function shall return -1 and set
_e_r_r_n_o to the corresponding value:
[EAGAIN] No resources available to queue the signal. The process
has already queued SIGQUEUE_MAX signals that are still
pending at the receivers, or a system wide resource limit
has been exceeded.
[EINVAL] The value of the _s_i_g argument is an invalid or unsupported
signal number.
PPPPaaaaggggeeee 1111
SSSSIIIIGGGGQQQQUUUUEEEEUUUUEEEE((((3333)))) SSSSIIIIGGGGQQQQUUUUEEEEUUUUEEEE((((3333))))
[EPERM] The process does not have the appropriate privilege to
send the signal to the receiving process.
[EPERM] The process _p_i_d does not exist.
WWWWAAAARRRRNNNNIIIINNNNGGGG
The POSIX and System V signal facilities have different semantics. Using
both facilities in the same program is ssssttttrrrroooonnnnggggllllyyyy ddddiiiissssccccoooouuuurrrraaaaggggeeeedddd and will
result in unpredictable behavior.
PPPPaaaaggggeeee 2222